Echo (computing)

In computer telecommunications, echo is the display or return of sent data at or to the sending end of a transmission. Echo can be either local echo, where the sending device itself displays the sent data, or remote echo, where the receiving device returns the sent data that it receives to the sender (which is of course simply no local echo from the point of view of the sending device itself).[1][2] That latter, when used as a form of error detection to determine that data received at the remote end of a communications line are the same as data sent, is also known as echoplex, echo check, or loop check. When two modems are communicating in echoplex mode, for example, the remote modem echoes whatever it receives from the local modem.[3][4][5][6][7]

Contents

Terminological confusion: echo is not duplex

Whilst local echo and remote echo are sometimes referred to as "half-duplex" and "full-duplex", those latter appellations are strictly incorrect, and are misleading. (See duplex (telecommunications) for their correct meanings.) Whilst local echo is often used with half-duplex transmission, so that bandwidth is not wasted upon remotely echoing data from the remote end of the communications channel, it is not the same as half-duplex transmission. A full-duplex communications channel can still employ local echo, and a half-duplex channel can still (albeit wastefully) employ remote echo, or no echo at all.[8][6]

Indeed, for example, that is the case for echoplex error checking, which requires full-duplex communication, so that received data can be echoed back as they are being received.[9][10]

Similarly, for another example, in the case of the TELNET communications protocol a local echo protocol operates on top of a full-duplex underlying protocol. The TCP connection over which the TELNET protocol is layered provides a full-duplex connection, with no echo, across which data may be sent in either direction simultaneously.[11] Whereas the Network Virtual Terminal that the TELNET protocol itself incorporates is a half-duplex device with (by default) local echo.[12][13]

The devices that echo locally

terminals are one of the things that may perform echoing for a connection. Others include modems, some form of intervening communications processor, or even the host system itself.[8] For several common computer operating systems, it is the host system itself that performs the echoing, if appropriate (which it isn't for, say, entry of a user password when a terminal first connects and a user is prompted to log in). On OpenVMS, for example, echoing is performed as necessary by the host system. Similarly, on BSD version 4, local echo is performed by the operating system kernel's terminal device driver, according to the state of a device control flag, maintained in software and alterable by applications programs via an ioctl() system call.[14][15] The actual terminals and modems connected to such systems should have their local echo facilities switched off (so that they operate in no echo mode), lest passwords be locally echoed at password prompts, and all other input appear echoed twice. This is as true for terminal emulator programs, such as C-Kermit, running on a computer as it is for real terminals.[14][16]

Controlling local echo

Terminal emulators

Most terminal emulator programs have the ability to perform echo locally (which sometimes they mis-name "half-duplex")[17]:

Modems

In the Hayes command set, the AT command that switches local echo off (in command mode) is E0 and the command to switch it on is E1. For local echo in data mode, the commands are F1 and F0 respectively. (Note the reversal of the numbers. The "F" commands are not part of the EIA/TIA-602 standard, but the "E" commands are.)[17][22]

Host systems

Some host systems perform local echo themselves, in their device drivers and so forth.

Footnotes

  1. ^ In the older and superseded BSD version 4 terminal interface and Seventh Edition Unix terminal interface it was settable via the ioctl() system call.[24]
  2. ^ This may not seem to work if used interactively. It does work. It's just immediately overridden. Some shells, such as tcsh, reset the terminal modes, including turning local echo off, when they are about to prompt for input. They actually place the terminal into non-canonical mode with local echo off, and handle echoing themselves, restoring the prior terminal attributes when the input line has been read. Any shell or other program that uses GNU readline also exhibits this interaction with stty -echo.[27][28]
  3. ^ Note that this is not the same as the LOCAL_ECHO terminal characteristic, settable with the DCL command SET TERMINAL /LOCAL_ECHO and unsettable with SET TERMINAL /NOLOCAL_ECHO. That characteristic controls whether the terminal itself performs local echo.[14][30]

References

What supports what

  1. ^ Graf 1999, p. 230.
  2. ^ Anmol 2000, p. 80.
  3. ^ Rosch 1999, p. 1161.
  4. ^ Weik 2000, "echo check" p. 478.
  5. ^ Weik 2000, "echoplex" p.479.
  6. ^ a b Jordan & Churchill 1987, p. 24.
  7. ^ Hill Associates 2002, p. 341.
  8. ^ a b Daintith 2004, p. 171.
  9. ^ Bagad & Dhotre 2009, p. 9—4.
  10. ^ Black 1987, p. 203.
  11. ^ Socolofsky & Kale 1991, p. 24.
  12. ^ IBM 1995, p. 2.
  13. ^ Postel & Reynolds 1983, p. 2.
  14. ^ a b c Duffy 2002, p. 43.
  15. ^ Leffler et al. 1989, p. 38,262,272.
  16. ^ a b Da Cruz & Gianone 1997, p. 158–159.
  17. ^ a b Bigelow 2000, p. 308.
  18. ^ Woggon 1995, p. 101.
  19. ^ Cowart 1992, p. 283.
  20. ^ Sheldon 1991, p. 678.
  21. ^ Norton & Kent 1993, p. 347.
  22. ^ Durda 2004.
  23. ^ Robbins & Robbins 2003, p. 204–205.
  24. ^ Leffler et al. 1989, p. 262.
  25. ^ Robbins & Robbins 2003, p. 203.
  26. ^ Sobell & Seebach 2006, p. 855.
  27. ^ Sobell & Seebach 2006, p. 856.
  28. ^ Ramey 2009.
  29. ^ Miller 1992, p. 30.
  30. ^ a b Leisner & Cook 1990, p. 136,158.

Sources used

  • Bagad, V.S.; Dhotre, I.A. (2009). Data Communication & Networking. Technical Publications. ISBN 9788184317596. 
  • Black, Uyless D. (1987). Data communications and distributed networks (2nd ed.). Prentice-Hall. ISBN 9780835913416. 
  • Bigelow, Stephen J. (2000). PC Technician's Troubleshooting Pocket Reference (2nd ed.). McGraw-Hill Professional. ISBN 9780072129458. 
  • Cowart, Robert (1992). Mastering Windows 3.1. Sybex. ISBN 9780895888426. 
  • Daintith, John (2004). "echo". Oxford dictionary of computing (5th ed.). Oxford University Press. ISBN 9780198608776. 
  • Da Cruz, Frank; Gianone, Christine M. (1997). Using C-Kermit: communication software (2nd ed.). Digital Press. ISBN 9781555581640. 
  • Duffy, Michael D. (2002). Getting started with OpenVMS: a guide for new users. Digital Press. ISBN 9781555582791. 
  • Durda, Frank (2004). "Section 3: Unprefixed AT Commands". The AT Command Set Reference. http://nemesis.lonestar.org./reference/telecom/modems/at/plain-at.html. 
  • Graf, Rudolf F. (1999). "echo". Modern dictionary of electronics (6th ed.). Newnes. ISBN 9780750698665. 
  • Hill Associates (2002). Telecommunications: a beginner's guide. Network professional's library. McGraw-Hill Professional. ISBN 9780072193565. 
  • IBM (June 1995) (PDF). Telnet and the Telnet Protocol. http://bandwidthco.com./whitepapers/netforensics/telnet/Telnet%20and%20the%20Telnet%20Protocol.pdf. 
  • Jordan, Larry E.; Churchill, Bruce (1987). Communications and networking for the IBM PC & compatibles (2nd ed.). Brady. ISBN 9780893036348. 
  • Leffler, Samuel J.; McKusick, Marshall Kirk; Karels, Michael J.; Quarterman, John S. (1989). "Terminal Handling". The Design and implementation of the 4.3BSD UNIX operating system. Addison-Wesley series in computer science. Addison-Wesley. ISBN 9780201061963. 
  • Leisner, K. M.; Cook, David B. (1990). VAX DCL programmer's reference VMS 5. Van Nostrand Reinhold. ISBN 9780442318345. 
  • Miller, David Donald (1992). VAX/VMS: operating system concepts. VAX-VMS Series. Digital Press. ISBN 9781555580650. 
  • Norton, Peter; Kent, Peter (1993). Peter Norton's user's guide to Windows 3.1. Bantam Books. ISBN 9780553371482. 
  • Ramey, Chet, ed (2009). "2.5 Readline Signal Handling". GNU Readline Library. http://tiswww.case.edu./php/chet/readline/readline.html#SEC43. 
  • Postel, Jon; Reynolds, J. (May 1983). "Motivation for the Option". RFC 0857: TELNET ECHO OPTION. http://tools.ietf.org./html/rfc0857#section-4. 
  • Robbins, Kay A.; Robbins, Steven (2003). UNIX systems programming: communication, concurrency, and threads (2nd ed.). Prentice Hall PTR. ISBN 9780130424112. 
  • Rosch, Winn L. (1999). Winn L. Rosch hardware bible (5th ed.). Que. ISBN 9780789717436. 
  • Sheldon, Thomas (1991). Windows 3: the complete reference. Osborne McGraw-Hill. ISBN 9780078816796. 
  • Sobell, Mark G.; Seebach, Peter (2006). A practical guide to Unix for Mac OS X users. Prentice Hall PTR. ISBN 9780131863330. 
  • Socolofsky, T.; Kale, C. (January 1991). "Transmission Control Protocol". RFC 1180: A TCP/IP Tutorial. http://tools.ietf.org./html/rfc1180#section-7. 
  • Weik, Martin H. (2000). Computer Science and Communications Dictionary. 1. Springer. ISBN 9780792384250. 
  • Woggon, Michele (1995). Telecommunications using ProComm & ProComm Plus made easy. Prentice Hall. ISBN 9780131484122. 
  • "local echo". Advanced learner's dictionary of journalism. Advanced Learner's Dictionary Series. Anmol Publications PVT LTD. 2000. ISBN 9788126104697.